From 9fd6c06946e2d3782199547771f54d562cd0f85a Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 18 Jan 2011 09:04:04 +0000 Subject: [PATCH] xen: fix XEN_DOMCTL_memory_mapping to not return with domain RCU lock held Broken in 20358:ecc649ec3675 Signed-off-by: Ian Campbell --- xen/arch/x86/domctl.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c index 6652aad8af..6fb5504d78 100644 --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -965,15 +965,15 @@ long arch_do_domctl( if ( (mfn + nr_mfns - 1) < mfn ) /* wrap? */ break; - ret = -ESRCH; - if ( unlikely((d = rcu_lock_domain_by_id(domctl->domain)) == NULL) ) - break; - ret = -EPERM; if ( !IS_PRIV(current->domain) && !iomem_access_permitted(current->domain, mfn, mfn + nr_mfns - 1) ) break; + ret = -ESRCH; + if ( unlikely((d = rcu_lock_domain_by_id(domctl->domain)) == NULL) ) + break; + ret=0; if ( domctl->u.memory_mapping.add_mapping ) { -- 2.30.2